package com.swak.frame.enums;

import com.swak.frame.i18n.MessageI18nSourceUtil;

import java.text.MessageFormat;
import java.util.Objects;

/**
 *  返回code接口
 * @author colley.ma
 * @since 2022/9/9 16:24
 */
public interface IResultCode {

	 Integer getCode();

	 String getMsg();

	default String getI18nMsg(Object ... args){
		if(this instanceof  Enum) {
			Enum en = (Enum) this;
			StringBuilder builder = new StringBuilder(this.getClass().getName());
			builder.append(".").append(en.name().toLowerCase());
			return MessageI18nSourceUtil.getMessage(builder.toString(), MessageFormat.format(getMsg(),args),args);
		}
		return  MessageFormat.format(getMsg(),args);
	}

	default  boolean eq(String errCode) {
		return Objects.equals(String.valueOf(getCode()), errCode);
	}

	default  boolean eq(Integer errCode) {
		return Objects.equals(getCode(), errCode);
	}
}
